查看原文
其他

老当益壮!Python 之父已经开始改写 Python 解释器了

IT服务圈儿 2022-09-11
 

IT服务圈儿

有温度、有态度的IT自媒体平台


来源:程序员头条

7 月 28 日,Python 之父 Guido 更新了一篇博文,在博文中,Guido 说虽然自己还没有完整地理解 PEG 解析,但是他已经开始着手自己编写一个了。而且还展示了一个简单的手写解析器,如下:


最常见的 PEG 解析方法是使用无限回溯的递归下降解析器。

statement: assignment | expr | if_statement
expr: expr '+' term | expr '-' term | term
term: term '*' atom | term '/' atom | atom
atom: NAME | NUMBER | '(' expr ')'
assignment: target '=' expr
target: NAME
if_statement: 'if' expr ':' statement


这种语言的超抽象递归下降解析器将为每个符号定义一个函数,该函数尝试调用与备选项对应的函数。例如:


def statement():
    if assignment():
        return True
   if expr():
        return True
    if if_statement():
        return True
    return False


当然,这些都太简单了,而且 Guido 并不想实现一个通用的 PEG Parser,在博文中 Guido 对自己的思路进行了详细的阐述,了解更多详情可查阅Guido Rossum博客。

英文原文地址:

https://medium.com/@gvanrossum_83706/building-a-peg-parser-d4869b5958fb




*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存